package com.itheima.thread_demo.thread_method;

/*
    线程有两种调度模型
        1 分时调度模型：所有线程轮流使用 CPU 的使用权，平均分配每个线程占用 CPU 的时间片
        2 抢占式调度模型：优先让优先级高的线程使用 CPU，如果线程的优先级相同，那么会随机选择一个，优先级高的线程
           获取的 CPU 时间片相对多一些

        注意 : Java使用的是抢占式调度模型

        优先级高 , 只是抢夺到cpu执行的概率高而已 , 只是一种概率问题

        public final void setPriority(int newPriority)	设置线程的优先级
        public final int getPriority()		获取线程的优先级
 */
public class PriorityDemo {
    public static void main(String[] args) {

        Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i <= 100; i++) {
                    System.out.println(Thread.currentThread().getName() + ":" + i);
                }
            }
        }, "线程1");
        // public final void setPriority(int newPriority)	设置线程的优先级 1-10
        // t1.setPriority(10);
        t1.start();

        //  public final int getPriority()		获取线程的优先级
        System.out.println(t1.getPriority());




        Thread t2 = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i <= 100; i++) {
                    System.out.println(Thread.currentThread().getName() + ":" + i);
                }
            }
        }, "线程2");
        t2.setPriority(1);
        t2.start();


    }
}
